package com.kainitram.designpattern;

/**
 * Interface for command
 * @author Mino
 *
 */
public interface Command {
	/**
	 * Execute a command
	 */
	void execute();
	
	/**
	 * Execute command
	 * @param param parameter for command
	 */
	void execute(Object param);
	
	/**
	 * Can execute a command?
	 * @return can execute command?
	 */
	Boolean canExecute();
	
	/**
	 * Can execute a command?	
	 * @param param parameter for executing
	 * @return can execute command?
	 */
	Boolean canExecute(Object param);
}
